1. Field of the Invention
The present invention relates to a decoding technique, and particularly to a decoding apparatus and a decoding method for decoding data subjected to LDPC encoding.
2. Description of the Related Art
In recent years, LDPC (Low Density Parity Check Code) has been attracting attention as an error correction code having a strong error correction capability even if a low S/N channel is employed. Thus, LDPC has been applied in many fields. With such LDPC, the data is encoded on the transmitter side using an encoding matrix generated based on a low density check matrix. Here, the “low density check matrix” represents a matrix having elements which are either 1 or 0, wherein the number of “1” elements is small. On the other hand, on the receiver side, the data decoding and parity check are performed based on the check matrix. In particular, by means of iterative decoding such as a BP (Belief Propagation) method or the like, such an arrangement provides improved decoding performance.
With such a decoding method, check node processing, which is decoding using a check matrix in the row direction, and variable node processing, which is decoding using the check matrix in the column direction, are iteratively executed. Known examples of the check node processing include sum-product decoding using a Gallager function or otherwise a hyperbolic function.
With sum-product decoding, a channel value, which can be calculated based on the variance of the transmission channel noise, is used as a prior value. With such sum-product decoding, in the iterative decoding, there is a demand for a technique for reducing the number of times the iterative decoding is executed, so as to provide sum-product decoding having high-speed convergence. In order to meet this demand, the priority level is determined for each check node, and processing is executed for each check node in descending order of the priority level.
As a countermeasure for reducing the number of times the iterative decoding is executed, so as to provide sum-product decoding having high-speed convergence, shuffled decoding is known. With sum-product decoding or the like employing such shuffled decoding, the variable node processing is executed immediately after the check node processing of each row is completed, thereby successively updating the prior value ratios. In contrast, with conventional sum-product decoding, the variable node processing is executed after the check node processing of all the rows of the check matrix is completed. With such shuffled decoding, the check node processing is sequentially executed using the extrinsic value ratios updated in the processing of each check node. Thus, such an arrangement must update the prior value ratios for all the variable nodes associated with the corresponding column. As a result, such an arrangement has a problem of an increased amount of calculation that is proportional to the number of non-zero elements (the column weight) in the column direction.